﻿Public Class FrmLogin

	Sub New()
		InitializeComponent()
		DoubleBuffered = True
	End Sub

	Private Sub FrmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		Connect()
		Help.Text = "Lütfen adınızı seçin ve parolanızı girin. Sisteme ilk defa giriş yapıyorsanız, parola bölümünü boş bırakın."
		Birim.LoadItems(Kullanici.Birimler)
		Birim.SetValue(GetSetting("Istihdam", "Son", "Birim", "-1"))
		Show()
		If Not Personel.Value Is Nothing Then Password.Focus()
	End Sub

	Sub Connect()
		Dim Type As Integer = 1
		For Each IP In My.Computer.Network.Addresses
			If IP Like "172.23.6.*" Or IP Like "172.26.*" Then
				Type = 2
			End If
		Next
		Select Case Type
			Case 1 : OpenConnection("172.25.10.9", "pizin", "pizinadmin", "relayer", "istihdam")
			Case 2 : OpenConnection("172.25.61.3", "personel", "sa", "relayer", "istihdam")
		End Select
	End Sub

	Private Sub FrmLogin_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
		e.Graphics.FillRectangle(New SolidBrush(Color.FromArgb(128, Color.Black)), New Rectangle(0, 0, Width, Height))
	End Sub

	Private Sub BtnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLogin.Click
		If Personel.Value Is Nothing Then Exit Sub
		If Not NewPassword1.Visible Then
			Kullanici.Oku("istihdam", Personel.Value, Password.Text)
			If Kullanici.Durum = Kullanici.KullaniciDurumu.MustChangePassword Then
				Info("İstihdam Servisi uygulamasını ilk defa kullanıyorsunuz. Lütfen sisteme giriş yapmak için kullanmak istediğiniz parolayı belirleyin. Parola en az dört karakter olmak zorundadır. Güvenlik kontrolü açısından kimlik numaranızı girmeniz gerekmektedir.")
				Height += Kimlik.Bottom - NewPassword1.Top
				L1.Visible = True : NewPassword1.Visible = True
				L2.Visible = True : NewPassword2.Visible = True : Remember.Visible = False
				L3.Visible = True : Kimlik.Visible = True
				Password.Enabled = False
				NewPassword1.Focus()
				Help.Text = "Lütfen sisteme giriş yapmak için kullanmak istediğiniz en az dört karakter uzunlukta olacak şekilde bir parola belirleyin ve ilgili alanları doldurun."
			ElseIf Kullanici.Durum = Kullanici.KullaniciDurumu.InvalidPassword Then
				If Check(Password, True, "Girdiğiniz parola yanlış. Lütfen kontrol edin.") Then Exit Sub
			ElseIf Not (From y In Kullanici.Yetkiler Where y.Tur = "opr").Any Then
				Warning("Bu uygulamayı kullanmak için yetkiniz yoktur. Lütfen yöneticinize başvurun.")
				Return
			ElseIf Kullanici.Durum = Kullanici.KullaniciDurumu.OK Then
				Login()
			End If
		ElseIf Not Password.Enabled Then
			If Check(NewPassword1, NewPassword1.Text <> NewPassword2.Text, "Girdiğiniz parolalar aynı değil. Lütfen kontrol edin.") Then Exit Sub
			If Check(NewPassword1, NewPassword1.Text.Length < 4, "Belirlediğiniz parola en az dört karakter uzunluğunda olmalıdır. Lütfen kontrol edin.") Then Exit Sub
			If Check(Kimlik, Kimlik.Text = "", "Kimlik kartı numarası girişini yapmanız gerekir.") Then Exit Sub
			Dim Result = Kullanici.SifreDegistir(Personel.Value, Kimlik.Text, NewPassword1.Text)
			If Check(Kimlik, Result = "kh", "Girdiğiniz kimlik kartı numarası sistemde kayıtlı olanla eşleşmemektedir. Lütfen kontrol edin. Bunun bir hata olduğunu düşünüyorsanız sistem yetkililerine haber verin.") Then Exit Sub
			Info("Parolanız kaydedilmiştir. İstihdam Servisi uygulamasını belirlediğiniz parola ile kullanabilirsiniz.")
			Login()
		End If
	End Sub

	Sub Login()
		DialogResult = Windows.Forms.DialogResult.OK
		SaveSetting("Istihdam", "Son", "Personel", Personel.Value)
		SaveSetting("Istihdam", "Parola", "P" & Trim(Personel.Value), If(Remember.Checked, Password.Text, ""))
		SaveSetting("Istihdam", "Son", "Birim", Birim.Value)
		Close()
	End Sub

	Private Sub Personel_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Personel.SelectedValueChanged
		If Personel.Value Is Nothing Then Password.Text = "" : Exit Sub
		Password.Text = GetSetting("Istihdam", "Parola", "P" & Personel.Value, "")
		Remember.Checked = Password.Text <> ""
	End Sub

	Private Sub Birim_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Birim.SelectedValueChanged
		Personel.LoadItems(Kullanici.Liste(Birim.Value))
		Personel.SetValue(GetSetting("Istihdam", "Son", "Personel", "-1"))
	End Sub

End Class
